In this script, there is conducted the estimation for the
measure_marginal approach for a single given env.
The env = erigon, the programs file =pg_marginal_full5_c50_step5_shuffle.csv, the resutls file = results_erigon_marginal_full5_c50_step5.csv.
Switch removed_outliers to FALSE to see the
comparison.
if (!removed_outliers) {
boxplot(measurements[which(measurements$env == env), 'measure_total_time_ns'] ~ measurements[which(measurements$env == env), 'opcode'], las=2, outline=TRUE, log='y', main=paste(env, 'all'))
}
if (removed_outliers) {
measurements = remove_compare_outliers(measurements, 'measure_total_time_ns', c(env))
}
Every sample starts with a fresh evm instance. We investigate whether the results may depend on the time from evm start - related to run_id. To avoid being overrun by the number of images, all op_count for a given run_id are are placed, so values are not centered. That should not be an issue.
Now we can investigate the linear regressions.
for (opcode in all_opcodes) {
estimate = compute_all(opcode=opcode, env=env, use_median=TRUE, plots=ifelse(details,'all','scatter'))
estimates[nrow(estimates) + 1, ] = c(opcode, estimate, env)
}
estimates
## op estimate_marginal_ns estimate_marginal_ns_stderr env
## 1 ADD 4.765455 0.6720578 erigon
## 2 MUL 8.574545 0.4899707 erigon
## 3 SUB 5.094545 0.4566219 erigon
## 4 DIV 6.689091 0.8180334 erigon
## 5 SDIV 7.318182 0.8226890 erigon
## 6 MOD 6.631818 0.9361584 erigon
## 7 SMOD 9.086364 0.5366388 erigon
## 8 ADDMOD 11.066364 0.6685710 erigon
## 9 MULMOD 23.742727 0.8185976 erigon
## 10 EXP 33.283636 0.8052352 erigon
## 11 SIGNEXTEND 12.998182 0.7519376 erigon
## 12 LT 5.329091 0.3937034 erigon
## 13 GT 5.884545 0.8205292 erigon
## 14 SLT 6.003636 0.6727862 erigon
## 15 SGT 6.521818 0.5694345 erigon
## 16 EQ 4.271818 0.7628109 erigon
## 17 ISZERO 4.740909 0.6805399 erigon
## 18 AND 4.652727 0.6004510 erigon
## 19 OR 5.430000 0.5776199 erigon
## 20 XOR 5.391818 1.0535985 erigon
## 21 NOT 3.842727 0.7624155 erigon
## 22 BYTE 6.284545 0.9224668 erigon
## 23 SHL 10.242727 0.5228947 erigon
## 24 SHR 10.128182 0.7348119 erigon
## 25 SAR 10.263636 0.6568087 erigon
## 26 ADDRESS 11.261818 0.7233262 erigon
## 27 ORIGIN 7.808182 0.5529800 erigon
## 28 CALLER 11.025455 0.5427438 erigon
## 29 CALLVALUE 3.728182 0.3648992 erigon
## 30 CALLDATALOAD 27.060000 1.2480775 erigon
## 31 CALLDATASIZE 4.513636 0.6298042 erigon
## 32 CALLDATACOPY 30.986364 0.6660641 erigon
## 33 CODESIZE 5.098182 0.6393075 erigon
## 34 CODECOPY 18.420000 1.5946512 erigon
## 35 GASPRICE 4.594545 0.6916108 erigon
## 36 RETURNDATASIZE 5.099091 0.5075445 erigon
## 37 RETURNDATACOPY 58.960000 16.3739590 erigon
## 38 COINBASE 8.227273 0.5847276 erigon
## 39 TIMESTAMP 5.845455 0.6211219 erigon
## 40 NUMBER 4.633636 0.5844834 erigon
## 41 DIFFICULTY 5.729091 0.4463911 erigon
## 42 GASLIMIT 4.469091 0.6449681 erigon
## 43 CHAINID 5.700000 0.6932867 erigon
## 44 SELFBALANCE 21.417273 0.5153635 erigon
## 45 POP 4.166364 0.1918665 erigon
## 46 MLOAD 8.808182 1.2443414 erigon
## 47 MSTORE 46.238182 1.7312017 erigon
## 48 MSTORE8 9.293636 1.0609623 erigon
## 49 JUMP 18.937273 3.0046725 erigon
## 50 JUMPI 26.612727 4.8225399 erigon
## 51 PC 5.042727 0.7542516 erigon
## 52 MSIZE 5.267273 0.5513323 erigon
## 53 GAS 5.610000 0.5919788 erigon
## 54 JUMPDEST 3.598182 0.9730659 erigon
## 55 PUSH1 5.169091 0.6766202 erigon
## 56 PUSH2 8.135455 0.8107167 erigon
## 57 PUSH3 9.915455 0.4838390 erigon
## 58 PUSH4 9.111818 0.5840653 erigon
## 59 PUSH5 7.655455 0.6024604 erigon
## 60 PUSH6 9.083636 0.5391978 erigon
## 61 PUSH7 9.549091 0.4074697 erigon
## 62 PUSH8 8.565455 0.6361801 erigon
## 63 PUSH9 8.896364 0.4362420 erigon
## 64 PUSH10 7.712727 0.4659995 erigon
## 65 PUSH11 8.609091 0.5779591 erigon
## 66 PUSH12 7.711818 0.9139060 erigon
## 67 PUSH13 8.717273 0.3818974 erigon
## 68 PUSH14 8.863636 0.6690989 erigon
## 69 PUSH15 8.790000 0.5641606 erigon
## 70 PUSH16 8.391818 0.4816637 erigon
## 71 PUSH17 9.756364 0.4264139 erigon
## 72 PUSH18 9.158182 0.7249828 erigon
## 73 PUSH19 8.384545 0.5138621 erigon
## 74 PUSH20 8.775455 0.4436255 erigon
## 75 PUSH21 10.252727 0.6640525 erigon
## 76 PUSH22 8.653636 0.6513939 erigon
## 77 PUSH23 8.805455 0.6753419 erigon
## 78 PUSH24 8.770909 0.5504115 erigon
## 79 PUSH25 8.282727 0.3635226 erigon
## 80 PUSH26 7.327273 0.4535828 erigon
## 81 PUSH27 10.014545 0.4304997 erigon
## 82 PUSH28 8.320000 0.7030470 erigon
## 83 PUSH29 9.118182 0.4017386 erigon
## 84 PUSH30 8.983636 0.3166625 erigon
## 85 PUSH31 8.763636 0.9063717 erigon
## 86 PUSH32 10.064545 0.5626449 erigon
## 87 DUP1 3.508182 0.3777415 erigon
## 88 DUP2 5.530909 0.8467311 erigon
## 89 DUP3 4.541818 0.5423332 erigon
## 90 DUP4 5.110000 0.7186802 erigon
## 91 DUP5 5.425455 0.7914892 erigon
## 92 DUP6 5.278182 0.5279988 erigon
## 93 DUP7 5.746364 0.5038893 erigon
## 94 DUP8 5.617273 0.5534763 erigon
## 95 DUP9 4.347273 0.5420784 erigon
## 96 DUP10 5.330909 0.5882445 erigon
## 97 DUP11 4.029091 0.3187954 erigon
## 98 DUP12 6.120909 0.8614630 erigon
## 99 DUP13 6.599091 0.7986892 erigon
## 100 DUP14 5.232727 0.5302861 erigon
## 101 DUP15 4.140909 0.6698351 erigon
## 102 DUP16 6.059091 0.7319769 erigon
## 103 SWAP1 6.043636 0.3560543 erigon
## 104 SWAP2 4.929091 0.2742777 erigon
## 105 SWAP3 6.154545 0.3255595 erigon
## 106 SWAP4 4.993636 0.5961686 erigon
## 107 SWAP5 4.839091 0.5112195 erigon
## 108 SWAP6 5.885455 0.7118184 erigon
## 109 SWAP7 6.247273 0.5083577 erigon
## 110 SWAP8 6.089091 0.7879578 erigon
## 111 SWAP9 5.046364 0.4252973 erigon
## 112 SWAP10 5.350909 0.5368637 erigon
## 113 SWAP11 4.804545 0.4951217 erigon
## 114 SWAP12 4.861818 0.5089589 erigon
## 115 SWAP13 5.891818 0.5306751 erigon
## 116 SWAP14 5.194545 0.4216832 erigon
## 117 SWAP15 6.648182 0.3763255 erigon
## 118 SWAP16 5.771818 0.8807136 erigon
## 119 MCOPY 13.880000 1.1106570 erigon
## 120 PUSH0 3.484545 0.5074931 erigon
## 121 SHA3 501.846364 4.6406532 erigon
## 122 LOG0 231.658182 2.8481732 erigon
## 123 LOG1 267.120909 8.0544047 erigon
## 124 LOG2 351.260000 51.2899205 erigon
## 125 LOG3 412.200000 42.1076713 erigon
## 126 LOG4 354.060000 26.8615525 erigon
## 127 EXTCODEHASH 93.050909 0.8170421 erigon
## 128 EXTCODESIZE 78.094545 1.5737278 erigon
## 129 EXTCODECOPY 81.749091 1.8896039 erigon
## 130 CREATE 3317.515455 22.5728004 erigon
## 131 CALL 441.963636 5.2950310 erigon
## 132 STATICCALL 387.720909 4.0635951 erigon
## 133 DELEGATECALL 317.887273 3.5718271 erigon
## 134 RETURN 263.100000 4.8358432 erigon
## 135 REVERT 118.030909 3.5935017 erigon
## 136 STOP -5.000000 2.6034800 erigon
The results are exported to ./erigon_marginal_estimated_cost.csv.